{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 就近些日子使用modelarts浅谈对其了解\n",
    "\n",
    "## Ai进入大众眼球\n",
    "自从阿尔法狗战胜李世石AI进入了大众的视野，让人们充分认识到人工智能的潜能。而modelarts就在此基础上孕育而生。我是在6月17号接触的modelarts到目前大概也有一个月了，针对这些期间对它的使用谈谈体验效果。\n",
    "### modelarts为AI行业带来便利\n",
    "\n",
    "modelarts是华为云开发的一站式开发平台，是一个人工智能的普及性工具。提供海量数据预处理及半自动化标注、大规模分布式训练、自动化模型生成，及端-边-云模型按需部署能力，帮助用户快速创建和部署模型，管理全周期AI工作流。这是它的页面介绍，modelarts主要是为业务开发者，AI初学者和AI工程师提供便利。对于业务开发者，他们可能并不太了解AI开发过程，而modelarts可以为其提供便利的AI开发平台，帮他们解决相关问题。对于初学者，他们可能对企业实践操作并不太了解比如模型调参，而modelarts可以为其提供服务。对于AI工程师来说，大量的数据是支撑AI技术的重点，而modelarts则为AI工程师提供一套服务，从算法设计，数据标注，作业训练，模型部署上线，一站式服务。\n",
    "## 具体实例谈modelarts\n",
    "\n",
    "下面就猫狗识别案例来具体谈谈modelarts的一些具体功能和优点。\n",
    "### 新用户注册\n",
    "\n",
    "对于新注册用户在实名以后使用modelarts之前需要进行一些操作:\n",
    "\n",
    "![图片1](./img/图片1.png)\n",
    "\n",
    "来到个人账户中心点击基本信息，然后点击管理凭证，点击访问秘钥，点击新增秘钥，然后会申请向你的手机发送一个验证码，之后秘钥创建成功会弹出一个秘钥下载链接，下载后在modelarts页面点击全局配置添加秘钥即可。新注册用户可以在下面的链接免费领取资源包，里面包括20小时cpu,10小时gpu,10小时包括模型训练部署上线在内的花费套餐。\n",
    "### 自主学习功能\n",
    "![图片2](./img/图片2.png)\n",
    "modelarts提供的自主学习功能可以进行图像分类，物理检测，数据分析和声音分析。可以让初学者初次体验modelarts的神奇。我最开始接触modelarts是在此基础上进行的云宝识别，预测结果还是比较让人满意的。\n",
    "### 数据标注\n",
    "![图片3](./img/图片3.png)\n",
    "在进行数据标注前需要先创建数据集。modelarts创建数据集时需要先创建obs桶,此时要注意左上角的区域，一定要确保obs桶和数据集在同一个区域，否则obs桶内的数据将导入不进去。创建obs桶后先将需要训练的数据上传上去，然后创建数据集进行数据标注即可。modelarts的数据标注功能提供满足个人开发者独立标注、业余小团队小规模协作标注，和专业团队的大规划标注协同的项目化管理。标注平台确保用户数据安全性，确保用户数据仅在授权范围内使用，标注对象分配策略确保用户数据的隐私性，实现标注数据脱敏需求。\n",
    "![图片4](./img/图片4.png)\n",
    "![图片5](./img/图片5.png)\n",
    "标注工具极其丰富提供 2D 框、3D 框、多边形、点、直线、mask、曲线等标注图形。通过预置算法和用户自定义算法实现数据在加载后自动标注，人工仅需要少量手工修正。智能标注结束后，还需要人工确认，当然这要比单纯的人工识别时间大大缩短，这一步主要筛选下智能识别错误的。 图片4 图片5 图三中我创建的一些数据集进行标注，它支持图像识别，物体检测，语音信息识别，文本检测等等。下面是我创建好数据集少量人工标注后，来进行智能标注极其结果。由图可见，图像识别中智能标注的准确度还是蛮高的。AI 开发过程中经常需要处理海量数据，数据准备与标注往往耗费整体开发一半以上时间，智能标注功能大大的降低了AI工程师人工标注的工作量。\n",
    "### 作业训练\n",
    "\n",
    "![图片6](./img/图片6.png)\n",
    "接下来谈一谈模型训练，在modelarts开发平台点击训练作业然后点击创建，根据需要填写上面的信息。创建成功后点击返回列表进行训练。模型训练的参数直接影响模型的精度以及模型收敛时间，参数的选择以及参数值的设定依赖于开发者的经验。参数不当会导致训练失败或时间大大增加，这里会自动调优learning_rate,epochs,batch_size参数，减少开发者技术水平带来的影响。modelarts提供了分布式训练加速，从软件硬件方面来实现训练模型更高的精确度和更快的训练速度。衡量分布式加速学习速度主要是看下面两个指标，吞吐量和收敛时间。作业训练结束后我们可以查看训练结果，以及日志和资源占用情况。可以再点击一下tensorboard，它可以直观地显示训练过程中loss、accuracy等评估指标的变化曲线，为开发者优化模型精度提供依据。\n",
    "### 模型导入部署上线\n",
    "\n",
    "模型训练结束后就是部署上线了，首先点击模型管理，点击导入，如下图点击从训练中导入，模型导入成功后将模型部署为在线服务，填写相关参数后，创建，等待几分钟后部署成功，之后就可以发起预测，对创建的模型进行测试了。点击预测，预测结果如图8。\n",
    "![图片8](./img/图片8.png)\n",
    "通常AI工程师进行 AI 模型部署和规模化落地非常复杂，而modelarts为此提供了一整套服务。在线推理服务，可以实现高并发，低延时，弹性伸缩;支持各种部署场景;一键部署并大大提高了部署上线速度。 \n",
    "\n",
    "### jupyter notebook开发环境\n",
    "![图片7](./img/图片7.png)\n",
    "modelarts还提供了jupyter notebook，可以让用户自己定义合适的算法来提高相应模型的准确度，提供了按需支付功能，大大减少了开发人员为了进行算法开发训练，而自己购买gpu搭建的高额成本。可谓是为用户尽可能的着想。modelarts的notebook环境有以下优势:支持所有主流的 AI 算法框架，包括 TensorFlow、PyTorch、MXNet 等，为适应各个开发人员的开发习惯还使用了友好的开发环境，支持支持传统机器学习算法运行;简化面向分布式训练的算法开发主要如下，简化调参，集成多种调参技巧包，简化分布式，支持将单机代码自动分布式。\n",
    "\n",
    "## modelarts总结\n",
    "#### modelarts有如下优点：\n",
    "1.一站式机器学习平台，从数据标注、模型训练、模型部署、模型上线一站式管理。\n",
    "2.易用性高，开发者不用关心开发环境，省去繁琐的开发环境准备工作。\n",
    "3.可视化流程管理，训练过程、日志文件、评估结果查询方便。\n",
    "#### 建议:modelarts智能标注在进行物体检测模块稍微还有些限制比如已标注的图片不能过多（超过500左右时智能标注就很难识别），标签不宜过多\n",
    "modelarts开发平台真可谓是为客户提供一整套服务，并且价格低廉实用。modelarts notebook开发环境不仅仅适合开发人员和工程师使用，对于高校的教学也非常实用，当前已有多个知名教育机构基于 ModelArts 开设人工智能专业课程。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
